
package model;

public class Comissao{
    
    /**
     * Função que obtém a comissão de um vendedor de acordo com o seu total de vendas. 
     * @param vendedor
     * @param totalVendas
     * @return Um double com o valor da comissão do vendedor.
     */
     public static double obterComissao(Vendedor vendedor, double totalVendas){
        return (vendedor.getCategoria() == 1 ? calculoCategoria1(totalVendas) : calculoCategoria2(totalVendas));
    }
    
     /**
      * Função que calcula a comissão de um vendedor da categoria 1 de acordo com o total de vendas.
      * @param totalVendas
      * @return Um double com o valor da comissão do vendedor.
      */
    public static double calculoCategoria1(double totalVendas){
        double comissao_cat1 =0;
        
        if((totalVendas >= 0) && (totalVendas <= 1000)){
                comissao_cat1 = (totalVendas * 10)/100;
        }else if((totalVendas > 1000 ) && (totalVendas <= 1800)){
                comissao_cat1 = 100 + (((totalVendas - 1000) * 15) /100);
        }else if(totalVendas > 1800){
                comissao_cat1 = 220 + (((totalVendas - 1800) * 20) /100);
        }
        return comissao_cat1;
    }
    
    /**
      * Função que calcula a comissão de um vendedor da categoria 2 de acordo com o total de vendas.
      * @param totalVendas
      * @return Um double com o valor da comissão do vendedor.
     */
    public static double calculoCategoria2(double totalVendas){
        double comissao_cat2 =0;
        
        if((totalVendas >= 0) && (totalVendas <= 2000)){
                comissao_cat2 = (totalVendas * 10)/100;
        }else if((totalVendas > 2000 ) && (totalVendas <= 4000)){
                comissao_cat2 = (totalVendas * 20)/100;
        }else if(totalVendas > 4000){
                comissao_cat2 = (totalVendas * 30)/100;
        }
        return comissao_cat2;
    }
}